ÉeÉNÉjÉJÉãQ&A

QTW 91 - CreatePortAssociation ÇΔ WM_QUERYNEWPALETTE ÉÅÉbÉZÅ[ÉW
(1998 îN 9 åé 21 ì˙)


Q: QuickTime 3 for Windows ÇÃLJÇΔÇ≈ÇÕÅAWM_CREATE ÉCÉxÉìÉgÇ…âûìöÇ∑ÇÈÉEÉBÉìÉhÉEÉvÉçÉVÅ[ÉWÉÉÇÃíÜÇ≈ CreatePortAssociation ÇåƒÇ—èoÇ∑ÇΔÅAǪÇÃÉEÉBÉìÉhÉEÉvÉçÉVÅ[ÉWÉÉÇÕ WM_QUERYNEWPALETTE ÉÅÉbÉZÅ[ÉWÇNjǡÇΩÇ≠éÛêMǵǻÇ≠Ç»ÇËÇ‹Ç∑ÅBÇ»Ç∫Ç≈Ç∑Ç©ÅB

A: HWND Ç…ëŒÇ∑ÇÈÉEÉBÉìÉhÉEÉvÉçÉVÅ[ÉWÉÉÇ… WM_QUERYNEWPALETTE ÉÅÉbÉZÅ[ÉWÇ™ì]ëóÇ≥ÇÍǻǢÇΔǢǧì_ÇÕǮǡǵǷÇÈí ÇËÇ≈Ç∑ÅBDZÇÃñ‚ëËÇîÇØÇÈÇ…ÇÕÅAMac toolbox Çà NSetPalette ÇΔ ActivatePalette ÇégǡǃÉJÉXÉ^ÉÄÉpÉåÉbÉgÇÉAÉNÉeÉBÉuÇ…Ç∑ÇÈÇΔǢǧï˚ñ@ǙdžÇËÇ‹Ç∑ÅBÇΩÇæÇµÅADZÇÍÇÕ QTML (DZÇÃÉÅÉbÉZÅ[ÉWÇì]ëóǵǻǢ) Ç…ÇΔǡǃïœë•Ç»èàóùÇ≈džÇÈÇΩÇflÅAWndProc ÇÉLÉÉÉvÉ`ÉÉǵǃÅAÉpÉåÉbÉgÉÅÉbÉZÅ[ÉWÇèúÇ≠ (NSetPalette ÇΔ ActivatePalette ÇégǡǃÉpÉåÉbÉgÇã≠êßìIÇ…ìKópÇ∑ÇÈÇΩÇfl) Ç∑Ç◊ǃÇÃÉÅÉbÉZÅ[ÉWÇ…ëŒÇ∑ÇÈÉRÅ[ÉãÉoÉbÉNÇçsǧDZÇΔÇ≈ÅADZÇÍÇ…ëŒèàÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBéüÇ…ÅAãÔëÃìIÇ»ÉRÅ[Éhó·Çé¶ÇµÇ‹Ç∑ÅB

qtmlWndProc = SetWindowLong(hWnd, GWL_WNDPROC, MyNewWndProc);

LRESULT CALLBACK MyWndProc()
{
  if (message == WM_QUERYNEWPALETTE)
  {
    // ïKóvÇ»èàóùÇçsǧ
  }
  else
    CallWindowProc(qtmlWndProc, ...);
}

ǻǮÅACallWindowProc ÇÃì‡ïîÇ©ÇÁ QTML ÇÃÉRÅ[ÉãÉoÉbÉNÇ™çƒãAìIÇ…çsÇÌÇÍÇÈÇÃÇîÇØÇÈïKóvǙdžÇÈÇΩÇflÅADZÇÍÇÕÇ«ÇøÇÁÇ©ÇΔåæÇ¶ÇŒÇ∑ǡǴÇËǵǻǢï˚ñ@Ç≈Ç∑ÅBÇ‡ÇøÇÎÇÒÅAÉRÅ[Éhì‡ÇÃîCà”ÇÃèÍèäÇ≈ Win32 ÉpÉåÉbÉgÉãÅ[É`ÉìÇégǡǃÉJÉXÉ^ÉÄÉpÉåÉbÉgÇìKópÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBÉJÉâÅ[ä¬ã´ÇïœçXǵÇΩå„ÇÕÅAQuickTime Çà GDevice É}ÉbÉ`Çämé¿Ç…çsÇ§ÇæÇØÇ≈Ç∑ÅBéüÇ…ÅAGDevice É}ÉbÉ`ÇÃï˚ñ@Çê‡ñæÇ∑ÇÈã^éóÉRÅ[ÉhÇé¶ÇµÇ‹Ç∑ÅB

1) SelectPalette ÇΔ RealizePalette ÇåƒÇ—èoǵǃÉnÅ[ÉhÉEÉFÉAÉpÉåÉbÉgÇïœçXÇ∑ÇÈ
2) GetSystemPaletteEntries ÇåƒÇ—èoǵǃ Windows Ç©ÇÁêFÇéÊÇËñflÇ∑
3) ÉpÉåÉbÉgÇÃÉGÉìÉgÉäÇ QuickTime Çà ColorTable Ç…ïœä∑Ç∑ÇÈ
4) ÉJÉâÅ[ÉeÅ[ÉuÉãÇÃÉGÉìÉgÉäÇ (**(**GetMainDevice()).gdPMap).pmTable Ç…à⁄ìÆÇ∑ÇÈ

ǻǮÅAÉJÉXÉ^ÉÄÉpÉåÉbÉgÇçÏê¨ÇµÅAQuickTime 3 Çà GetMovieColorTable() Ç®ÇÊÇ— SetMovieColorTable() ä÷êîÇégǡǃÅAǪÇÃÉpÉåÉbÉgÇÉÄÅ[ÉrÅ[Ç…ä÷òAÇ√ÇØÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBÉÄÅ[ÉrÅ[ÉRÉìÉgÉçÅ[ÉâÇΔÇΔLJDžÉÄÅ[ÉrÅ[Çï\é¶ÇµÇÊǧÇΔǵǃÅAÉÄÅ[ÉrÅ[Ç™ÉAÉNÉeÉBÉuǻǡÇΩÇΔÇ´Ç…ÉJÉXÉ^ÉÄÉpÉåÉbÉgÇégópǵÇΩÇ¢èÍçáÇÕÅAíPèÉÇ… MCDoAction ä÷êîÇΔ mcFlagsUseWindowPalette ÉtÉâÉOÇégópÇ∑ÇÈÇæÇØÇ≈Ç∑ÅB


-- Scott Kuechle
Worldwide Developer Technical Support